package interceptor

import (
	"context"
	"google.golang.org/grpc"
	"log"
	"time"
)

// 记录日志

func UnaryLoggerInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {

	// 记录开始时间和请求的方法
	log.Println("start:" + time.Now().Format("2006-01-02 15:04:05") + " " + info.FullMethod)
	// 执行具体rpc方法
	resp, err = handler(ctx, req)
	if err != nil {
		// 记录异常日志信息
		log.Println("error:" + time.Now().Format("2006-01-02 15:04:05") + " " + err.Error())
		return resp, err
	}

	// 正常结束，记录结束时间和方法
	log.Println("end:" + time.Now().Format("2006-01-02 15:04:05") + " " + info.FullMethod)

	return resp, nil
}
